﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace GymMaster.View.Cadastro
{
    public partial class CadastroUsuario : BasePageGymMaster
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            GymMasterEntities contexto = new GymMasterEntities();
            int valor;
            Int32.TryParse(ddlEstado.SelectedValue, out valor);
            if (valor > 0)
            {
                var dadosFornecedor = from cid in contexto.CIDADE
                                      where cid.COD_ESTADO == valor
                                      orderby cid.NOM_CIDADE
                                      select new { cid.COD_CIDADE, cid.NOM_CIDADE };

                ddlCidade.DataValueField = "COD_CIDADE";
                ddlCidade.DataTextField = "NOM_CIDADE";
                ddlCidade.DataSource = dadosFornecedor;
                ddlCidade.DataBind();
            }
            ddlCidade.Items.Insert(0, new ListItem("<< Selecione >>", "0"));
        }

        protected void Page_LoadComplete(object sender, EventArgs e)
        {
            if (Request.QueryString["menu"] != null)
            {
                GymMasterEntities contexto = new GymMasterEntities();
                lblNomePagina.Text = "Cadastro Aluno";
                ddlPerfil.Items.Clear();
                var dadosPerfil = from per in contexto.PERFIL
                                  where per.DESCRICAO.Contains("Aluno")
                                  select new { per.ID_PERFIL, per.DESCRICAO };

                //ddlPerfil.DataValueField = "ID_PERFIL";
                //ddlPerfil.DataTextField = "DESCRICAO";
                //ddlPerfil.DataSource = dadosPerfil;
                //ddlPerfil.DataBind();
                txtSenha.Text = "12345";
                txtSenha.Enabled = false;
                txtConfSenha.Text = "12345";
                txtConfSenha.Enabled = false;
            }
        }

        protected void btnCadastrar_Click(object sender, EventArgs e)
        {
            try
            {
                GymMasterEntities entity = new GymMasterEntities();

                //endereco
                ENDERECO endereco = new ENDERECO();
                endereco.RUA = txtRua.Text;
                endereco.NUMERO = Int32.Parse(txtNumero.Text);
                endereco.BAIRRO = txtBairro.Text;
                endereco.COD_CIDADE = 2935; // Int32.Parse(ddlCidade.SelectedValue);
                endereco.CEP = txtCep.Text;
                endereco.COMPLEMENTO = txtComplemento.Text;
                endereco.ID_TIPO_ENDERECO = (from tipoend in entity.TIPO_ENDERECO
                                             where tipoend.DESCRICAO == "Residencial"
                                             select tipoend.ID_TIPO_ENDERECO).SingleOrDefault();
                entity.ENDERECO.AddObject(endereco);

                //pessoa
                PESSOA pessoa = new PESSOA();
                pessoa.NOME = txtNome.Text;
                pessoa.SEXO = ddlSexo.SelectedValue;
                pessoa.CPF = txtCpf.Text;
                pessoa.RG = txtRg.Text;
                pessoa.NASCIMENTO = DateTime.Parse(txtNascimento.Text);
                pessoa.EMAIL = txtEmail.Text;
                pessoa.ENDERECO = endereco;
                entity.PESSOA.AddObject(pessoa);

                //usuario
                USUARIO usuario = new USUARIO();
                usuario.PESSOA = pessoa;
                usuario.ID_PERFIL = Int32.Parse(ddlPerfil.SelectedValue);
                String[] login = txtNome.Text.Split(' ');
                usuario.USUARIO1 = retiraAcento(login[0].ToUpper() + "." + login[login.Length - 1].ToUpper());
                usuario.SENHA = txtSenha.Text;
                usuario.ATIVO = true;
                usuario.OBSERVACOES = txtObs.Value;
                usuario.MATRICULA = System.DateTime.Today.Year + System.DateTime.Today.Day + System.DateTime.Today.Minute + System.DateTime.Today.Second;
                entity.USUARIO.AddObject(usuario);

                //persistencia
                entity.SaveChanges();
                ShowMsg("Cadastro realizado com sucesso.");
            }
            catch (Exception)
            {
                ShowMsg("Erro ao realizar o cadastro.");
                throw;
            }
        }
    }
}